Cascading
Style Sheets (CSS): Backgrounds - Part I
By Will Bontrager
Background colors and images can be used for stylistic effects and can
be an important element in the design of web sites.
With standard HTML, one can assign backgrounds to a web page and to tables and
table data cells. Compared to what one can do with CSS, however, HTML is limited.
With CSS, background colors and background images can be applied in many different
ways.
1. The web page's background, in any of the following manners:
a. Background color (like standard HTML).
b. Tiled image (like standard HTML), where the image is repeated across the top
and row by row until the entire web page background is covered.
c. Not repeated, the image printed just once. The image can be positioned anywhere
in the window.
d. Repeated across the top of the web page for one row.
e. Repeated along the left side of the web page for one column.
f. Fixed in position with the web page contents so the background image remains
in place while the page content scrolls over the top of it.
2. The background behind divisions of the web page, within DIV tags.
3. The background behind tables.
4. The background behind sections of text content.
5. The background behind INPUT and TEXTAREA form elements.
6. The background behind ordered and unordered lists.
This article will address only web page backgrounds. Part two will address the
others mentioned above.
Netscape 4.# does not position background images and it does not prevent the background
from scrolling with the text. Other than those two considerations, the major browsers
comply with the CSS presented in this part one.
You probably already know how to create background colors and background images
with standard HTML. As a refresher, the color and/or image URL are specified in
an attribute of the BODY tag. Here are the methods, the first a yellow background
color, the second specifying a background image:
body bgcolor="yellow" body background="image.jpg"
The bgcolor attribute provides the color, as expected. The background attribute
provides the image, but tiled to cover the entire background of the window.
Now, let's see what you can do with CSS!
The CSS examples in this article are provided in the format used when the styles
are defined in the HEAD area of a web page. For site-wide implementation, you
can use an external file for the same effects.
See previous articles of the "Cascading Style Sheets (CSS)" series, "Getting Started"
and "Learning More," for more information about those two methods of defining
CSS styles. The articles are linked from http://willmaster.com/possibilities/archives/
Background Color
Here is the method of specifying a page background color. For single page, put
this in the HEAD area. For site-wide implementation, you'll probably want to put
the style into your external CSS file.
<style
type="text/css">
<!--
BODY { background-color: yellow; }
-->
</style>
Changing the color name (or changing the #ffff00 hexadecimal equivalent), will
change the background color of the one page or all pages using an external CSS
file.
Tiled Image
This will put a background image into your web page, the image repeating across
the top, row by row, until the web page background is covered.
<style
type="text/css">
<!--
BODY { background-image: url(image.jpg); }
-->
</style>
The URL can be specified as relative or absolute. The following are all valid
formats:
url(image.jpg); url(graphics/image.jpg); url(http://domain.com/pictures/image.jpg);
Image Not Repeated, With Exact Positioning
This will print the background just once, placing it in the top-left corner of
the web page.
<style type="text/css">
<!--
BODY {
background-image: url(image.jpg);
background-repeat: no-repeat;
}
-->
</style>
To position the image in a place other than the top-left corner, use the background-position
label. For example, this will print the background image at the right-top of the
web page.
<style type="text/css">
<!--
BODY {
background-image: url(image.jpg);
background-repeat: no-repeat;
background-position: right top;
}
-->
</style>
The words you can use for positioning are: top bottom left right center
Note that the above words apply to the entire web page, not just the browser window.
Thus, "bottom" means the bottom of the page, not the bottom of the window.
Positioning can also be specified by distance measurement and by percentages.
This style will place the top left corner of the image 400 pixels in from the
left page margin and 100 pixels down from the top page margin.
<style type="text/css">
<!--
BODY {
background-image: url(image.jpg);
background-repeat: no-repeat;
background-position: 400px 100px;
}
-->
</style>
And this style will calculate the distance 10% from the left and 20% from the
top.
<style type="text/css">
<!--
BODY {
background-image: url(image.jpg);
background-repeat: no-repeat;
background-position: 10% 20%;
}
-->
</style>
Calculation is done using both the dimensions of the page and the dimensions of
the image, the same percentage of each. The point 10% in from the left of the
image will be placed at the point 10% from the left of the web page. And the point
20% from the top of the image will be placed 20% from the top of the web page.
It can be a hard concept to grasp without a drawing. But try it, specifying different
percentages until you gain an experiential understanding.
Background Image Repeated Across the Top of the Web Page
This style will repeat your background image across the top of the page, one row.
<style type="text/css">
<!--
BODY {
background-image: url(image.jpg);
background-repeat: repeat-x;
}
-->
</style>
Background Image Repeated Along the Left of the Web Page
This style will repeat your background image along the left of the page, one column.
<style type="text/css">
<!--
BODY {
background-image: url(image.jpg);
background-repeat: repeat-y;
}
-->
</style>
Background Image Does Not Scroll When Web Page Scrolls
To make your background image stay in place while the web page contents are scrolled
over the top, use this style:
<style type="text/css">
<!--
BODY {
background-image: url(image.jpg);
background-attachment: fixed;
}
-->
</style>
An Application
Let's suppose you have a nice little image of a flower. You want it for a background,
printed in a row along the top of your web page. The flowers should stay in their
fixed position when the rest of the web page content scrolls.
It can be done this way:
<style type="text/css">
<!--
BODY {
background-image: url(flowers.jpg);
background-repeat: repeat-x;
background-attachment: fixed;
}
-->
</style>
Knowing how to use and position background images can enhance web page design.
Copyright 2002 Bontrager Connection, LLC "WillMaster Possibilities" ezine
About the Author:
http://willmaster.com/possibilities/
possibilities@willmaster.com
Programming for webmasters since 1997
http://bontragerconnection.com/about.shtml